package CompteEpargne;

import _Banque.CompteBancaire;
import _Banque.CompteEpargne;
import _Banque.Titulaire;
import _Banque.interfaces.IBanque;
import _Tests.Tests;

//
// IUT de Nice / Departement informatique / Module APO-C++
// Annee 2008_2009 - Package _Banque
//
// Classe CompteEpargne - Tests unitaires du mecanisme RTTI
//                        (Cas nominaux)
//
// Auteur : A. Thuaire
//
public class T_CompteEpargne_N6 implements IBanque {

	public static void main(String[] args) throws Throwable
	{
	   Tests.Begin("_Banque.CompteEpargne", "1.2.0");
	   String adresse = "Villa Beau Sejour, 115 Av. de la Grande Armee - PARIS (75000)";
	   Titulaire durand = new Titulaire("Durand", "Paul", "1981/01/03",  adresse);
	 
	      Tests.Design("Controle du mecanisme RTTI", 3);
				
	         Tests.Case("Cas natif (aucun transtypage)"); {     
	         CompteEpargne compte= new CompteEpargne(durand, 0.05f);
	           
	            Tests.Unit("_Banque.CompteEpargne", compte.getClass().getName());
	            Tests.Unit(4000001, compte.getNumeroCompte());
	         }
			 
	         Tests.Case("Cas avec transtypage dans la classe mere"); {     
	         CompteBancaire compte= new CompteEpargne(durand, 0.05f);
	           
	            Tests.Unit("_Banque.CompteEpargne", compte.getClass().getName());
	            Tests.Unit(4000002, ((CompteEpargne)compte).getNumeroCompte());
	         } 

	         Tests.Case("Cas avec transtypage dans un pointeur banalise"); {     
	         Object compte= new CompteEpargne(durand, 0.05f);
	           
	            Tests.Unit("_Banque.CompteEpargne", compte.getClass().getName());
	            Tests.Unit(4000003, ((CompteEpargne)compte).getNumeroCompte());
	         }

	   Tests.End();
	}
}
